package com.xigua._数学;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 给你一个整数 n ，表示比赛中的队伍数。比赛遵循一种独特的赛制：
 *如果当前队伍数是 偶数 ，那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛，且产生 n / 2 支队伍进入下一轮。
 *如果当前队伍数为 奇数 ，那么将会随机轮空并晋级一支队伍，其余的队伍配对。总共进行 (n - 1) / 2 场比赛，且产生 (n - 1) / 2 + 1 支队伍进入下一轮。
 *返回在比赛中进行的配对次数，直到决出获胜队伍为止。
 * @date 2022/1/2522:05
 */
public class _1688_比赛中的配对次数 {

    public static void main(String[] args) {

    }

    public int numberOfMatches(int n) {
        List<Integer> ints = new ArrayList<>();
        ints.add(0);
        ints.add(n);
        return matches(ints).get(0);
    }

    public  List<Integer> matches(List<Integer> ints){
        Integer sum = ints.get(0);
        Integer n = ints.get(1);
        if (n==1){
            return ints;
        }else if (n%2 ==1){
            sum += (n-1)/2;
            n = (n+1)/2;
        }else if (n%2 ==0){
            sum += n/2;
            n = n/2;
        }
        ints.clear();
        ints.add(sum);
        ints.add(n);
        return matches(ints);

    }


}
